/*
 * MessageQueueInterface.h
 *
 *  Created on: Jul 22, 2013
 *      Author: m
 */

#ifndef MESSAGEQUEUEINTERFACE_H_
#define MESSAGEQUEUEINTERFACE_H_

namespace communication
{

template <class T> class MessageQueueInterface
{
public:
    MessageQueueInterface() {}
    virtual ~MessageQueueInterface() {}

    virtual void put( const T &data ) = 0;
    virtual T get() = 0;
    virtual bool poll( T& data ) = 0;
    virtual void open( std::string name ) = 0;
    virtual void close() = 0;
    virtual void destroy() = 0;

};

} /* namespace communication */
#endif /* MESSAGEQUEUEINTERFACE_H_ */
